﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//有数组的元素是：1，2，3，4，5，1，2，3，4，6只有5和6只出现1次，要找出5和6
//dsg(int* arr, int len) {
//	int dsg1 = 0;
//	int dsg2 = 0;
//	int count = 0;
//	dsg1 = *(arr);
//	for (int i = 0; i < len; i++) {
//		if (count != 0) {          //用count判断是不是单身狗
//			dsg1 = *(arr + i);     //如果不是则用下一个元素继续找 
//			count = 0;             
//		}
//		else if(i != 0) {             
//			break;                  //是的话，退出循环，并打印
//		}
//		for (int j = 0; j < len; j++) {
//			if (i == j) {                      //跳过和自己比较
//				continue;
//			}
//			if (*(arr + i) != *(arr + j)) {
//				dsg2 = *(arr + j);             //如果不一样则对dsg2进行赋值
//			}
//			else {
//				count++;
//				break;
//			}
//		}
//	}
//	printf("%d%d", dsg1, dsg2);
//
//	
//}
//int main() {
//       int arr[10] = { 5,2,3,4,1,1,2,3,4,6 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	dsg(arr, len);
//
//
//
//	return 0;
//}
int add(int x, int y) {
	return x + y;
}
int sub(int x, int y) {
	return x - y;
}
int mul(int x, int y) {
	return x * y;
}
int div(int x, int y) {
	return x / y;
}
void calc(int (*p)(int, int),int input) {
	int ret = 0;
	int x, y;
	printf("输入操作数：");
	scanf("%d %d", &x, &y);
	ret = (*p)(x, y);
	printf("ret = %d\n", ret);
}
int main() {
	int input = 1;
	int(* p[5])(int x,int y) = {0,add,sub,mul,div};
	do {
		printf("------1.add  2.sub---------\n");
		printf("------3.mul  4.div---------\n");
		printf("------0.exit      ---------\n");
		printf("请选则");
		scanf("%d", &input);
			if ((4 >= input) && (input>= 1)) 
			{
				calc(p[input],input);
			}
			else if (input == 0) {
				printf("退出计算器\n");
			}
			else
			{
				printf("输入有误\n");
			}
	} while (input);
	return 0;
}